package com.mongdb.mongdb;

import org.bson.Document;
import org.springframework.context.annotation.Bean;
import org.springframework.core.convert.converter.Converter;

import java.sql.Timestamp;
import java.util.Date;

/**
 * 文档地址：https://docs.spring.io/spring-data/data-mongo/docs/2.1.1.RELEASE/reference/html/#mongo.custom-converters.writer
 * 自定义读convernet（转换器问题），编写此转换器的目的为存入日期格式时mongodb存储为java.date.util类型，在查询的时候会报转换异常，当然可以
 *将日期定义为数据库满足的格式，此处仅仅为练习自定义转换器，此处为读转换器，写转换器需要将user对象与Document对换即可，
 * 功能：可以将默认的映射策略进行更加细粒度的控制
 */

public class TimestampConverter implements Converter<Document,User> {
	@Override
	public User convert(Document document) {
		User user=new User();
		user.setId((String) document.get("_id"));
		user.setName((String) document.get("name"));
		user.setSex((String) document.get("sex"));
		Date date= (Date) document.get("createTime");
		user.setCreateTime(new Timestamp(date.getTime()));
		return user;
	}


//	@Override
//	public Object convert(Object o) {
//		if(o!=null){
//			if(o.getClass().isInstance(User.class)){
//				User user= (User) o;
//				user.setCreateTime(user.getCreateTime());
//				return  user;
//			}
//		}
//		return null;
//	}


}
